1
泛型代码的蓝图
AI037Lesson 18
00:00

想象你是一位建筑师。与其为一栋砖房绘制固定的图纸,不如设计一个通用的 蓝图 ,使其能够适应木材、钢材或玻璃。在 C++ 中,这就是 泛型编程

1. 蓝图机制

一个 模板参数列表 (例如, template <typename T>)引入了称为 模板类型参数的占位符。它们作为类型的变量使用。例如,在 template <typename T> ostream &print(ostream &os, const T &obj)中, T 仅在函数被调用时才确定。

2. 实例化

编译器不会将模板本身编译成机器码。相反, 实例化 发生:编译器仅在提供具体的 模板实参 时才会生成代码的具体版本。因此,定义通常应放在头文件中。

蓝图compare<T>compare(int)compare(vector)错误:Sales_data

3. 编写与类型无关的代码

为了最大化可重用性,请遵循 最佳实践:最小化要求。仅使用 < 操作符(通过 less<T>)可以减少对类型的要求,相比使用 >中, <=>=。验证通常会延迟;编译器一般无法在编译模板本身阶段发现许多错误;大多数错误出现在实例化阶段。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>